This invention relates to the interfacing of software to hardware, more specifically to a system for translating hardware/software interface specifications simultaneously into specific microprocessor executable code and commands for the linker/loading system of a selected hardware configuration.
Computer based instruments are in fact systems of mechanical and electronic components interacting with the computer program stored in those hardware components. The task of correctly interfacing hardware and software has always been a rather intricate one and very time consuming. The system of the present invention allows the instrument designer to specify the hardware/software interface in a high order language in an interactive way. That system then translates those specifications into code executable by the instrument computer as well as other commands to be executed by the program linking/loading systems. It thus reduces to minutes a development process that might otherwise take up to several days or even weeks.
When a high order language, such as Pascal is used the program is machine independent by virtue of the nature of the language. Pascal source programs do not vary, regardless of the process or host computer on which it is to be used. However, with conventional Pascal, there's no direct way to specify implementation-dependent requirements such as interrupt vectors, restart routines, or memory configuration.
You could develop a large assembly language routine (to connect your Pascal program with the prototype hardware) and a linker command file (to specify your memory configuration). To do this, you would need detailed knowledge of the assembler, the linker, and the Pascal interface requirements. The task is time-consuming, and with so many low-level details to keep track of, errors are inevitable. There are no known prior art systems for generating the linker commands and the configuration object files automatically.
It would be desirable to have a system which provides you with a list of the items you need to specify in order to configure a program to a prototype--everything from the name of your compiled object program to the address where the program begins execution. Then, based on your responses, generates the configuration object file and linker commands needed to configure your prototype.
If such a system used high-level language directives, you could describe your prototype more quickly and with fewer errors. And the system could also check the validity of your statements, thus saving you from errors that would not be caught until later. It is believed that the present invention embodies such a system.